import 自动测试
from 插件.基础函数.常用函数 import *
from 工程.九州项目.接收激励.公共函数 import *

    
def 主收通道AGC响应时间测试初始化():
    信号源2.连接()
    示波器1.连接()
    产品初始化()

    通道1 = 1 #3
    通道2 = 2 #2
    示波器1.通道设置(通道1,2,0,"DC")
    示波器1.通道设置(2,0.5,0,"DC")
    示波器1.时间设置(2E-5,0)
    示波器1.触发设置("CHAN1","EDGE","POS",1)

    信号源2.设置调制关()
    信号源2.设置射频关()
    信号源2.设置频率(118e6)
    信号源2.设置幅度(-25)

    ########################################
    # 信号源2.设置低频幅度('3')
    # 信号源2.设置低频波形('方波')
    # 信号源2.设置低频频率(1000)
    # 信号源2.设置低频输出开()
    ###########################################

#    信号源2.设置脉冲调制内部()
    信号源2.设置脉冲调制周期(20e-3)
    信号源2.设置脉冲调制宽度(6e-3)
#    信号源2.设置脉冲同步输出()

    信号源2.设置脉冲调制开()
    信号源2.设置调制开()
    信号源2.设置射频开()

    zbb产品.被测产品SPI.设置PTT控制指令("PTT无效")
    zbb产品.被测产品SPI.设置70M(False)

    print("主收通道响应时间测试初始化")
    
def 主收通道AGC响应时间(通道='主收1',频点=118.0):
    频率=频点*1000000
    工作方式='DS'
    zbb路由.测试主收通道AGC响应时间(通道)
    zbb产品.被测产品SPI.设置通道方式频点(通道,工作方式,频点)

    示波器1.连续触发()
    信号源2.设置频率(频率)
    延时(2)
    仪器测量值=示波器1.回读波形("CHAN2")
    长度=len(仪器测量值)
    稳态值=max(仪器测量值)
    稳态值90=稳态值*0.9
    响应时间=0
    print(稳态值,稳态值90,len(仪器测量值))
    # for i in range(长度):
    #     if i%10==9:
    #         print(仪器测量值[i-9:i+1])
    for i in range(int(长度*0.6),长度):
        if 仪器测量值[i]>稳态值90:
            print(i,仪器测量值[i])
            响应时间=(i-长度/2)*200/长度
            break;
    if 稳态值<0.2:
        响应时间=0

    项目="主收通道响应时间('"+通道+"',"+str(频点)+")"

    判断合格保存(项目,响应时间,10,50,"us")

if __name__=='__main__':
    pass
    zbb路由.选择产品(1)
    主收通道AGC响应时间测试初始化()
    # 主收通道AGC响应时间('主收1', 118)
    # 主收通道AGC响应时间('主收1', 398)
    # 主收通道AGC响应时间('主收2', 118)
    主收通道AGC响应时间('主收1', 398)
